package com.spic.business.train.questions.mapper;

import com.spic.business.train.questions.domain.TrainQuestions;
import com.spic.business.train.questions.domain.TrainQuestionsOptions;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 题库管理Mapper接口
 *
 * @author renxiang
 * @date 2021-10-20
 */
public interface TrainQuestionsMapper {
    /**
     * 查询题库管理
     *
     * @param id 题库管理主键
     * @return 题库管理
     */
    public TrainQuestions selectTrainQuestionsById(@Param("id") String id);
    public TrainQuestions selectTrainQuestionsByIdAll(@Param("id") String id);

    /**
     * 查询题库管理列表
     *
     * @param trainQuestions 题库管理
     * @return 题库管理集合
     */
    public List<TrainQuestions> selectTrainQuestionsList(TrainQuestions trainQuestions);

    /**
     * 新增题库管理
     *
     * @param trainQuestions 题库管理
     * @return 结果
     */
    public int insertTrainQuestions(TrainQuestions trainQuestions);

    /**
     * 修改题库管理
     *
     * @param trainQuestions 题库管理
     * @return 结果
     */
    public int updateTrainQuestions(TrainQuestions trainQuestions);

    /**
     * 删除题库管理
     *
     * @param id 题库管理主键
     * @return 结果
     */
    public int deleteTrainQuestionsById(String id);

    /**
     * 批量删除题库管理
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTrainQuestionsByIds(String[] ids);

    /**
     * 批量删除试题答案项  判断题选项共用，题库ID为000 A 为 对，B为错
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTrainQuestionsOptionsByIds(String[] ids);

    /**
     * 批量新增试题答案项  判断题选项共用，题库ID为000 A 为 对，B为错
     *
     * @param trainQuestionsOptionsList 试题答案项  判断题选项共用，题库ID为000 A 为 对，B为错列表
     * @return 结果
     */
    public int batchTrainQuestionsOptions(List<TrainQuestionsOptions> trainQuestionsOptionsList);


    /**
     * 通过题库管理主键删除试题答案项  判断题选项共用，题库ID为000 A 为 对，B为错信息
     *
     * @param id 题库管理ID
     * @return 结果
     */
    public int deleteTrainQuestionsOptionsByQuestionId(String id);

    List<TrainQuestions> listRandommultiScore(@Param("questionsDifficulty") String questionsDifficulty, @Param("size") Integer size, @Param("courseType") String courseType, @Param("questionsType") String questionsType,@Param("excludes") List<String> excludes);


    List<TrainQuestions> listByRandom(@Param("questionsDifficulty") String questionsDifficulty, @Param("size") Integer size, @Param("courseType") String courseType, @Param("questionsType") String questionsType);

    List<TrainQuestions> listRandomJudgeCount(@Param("questionsDifficulty") String questionsDifficulty, @Param("size") Integer size, @Param("courseType") String courseType, @Param("questionsType") String questionsType,@Param("excludes") List<String> excludes);

    List<TrainQuestions> listRandomGapCount(@Param("questionsDifficulty") String questionsDifficulty, @Param("size") Integer size, @Param("courseType") String courseType, @Param("questionsType") String questionsType,@Param("excludes") List<String> excludes);

    int typeCount(@Param("type") Integer type, @Param("difficultly")Integer diff,@Param("courseType")String courseType);

    int duoxuan();

    int danXuan();

    int tiankong();
}






